#ifndef _VFX_PATH_SFX_
#define _VFX_PATH_SFX_

#include "sfx.h"
#include "ui/ui_sprite.h"
#include "math/vec2.h"
#include "math/spline2d.h"
#include "math/counter.h"
namespace vfx
{

// holder for sprites that only exists for one cycle
class PathSFX : public SFXSet
{
public:
	struct	PathInst
	{
		math::Counter		Prog;
		math::Spline2D*		pSpline;
		math::Vec2			Pos;
		float				WaveOffset;
		COLOR				Color;
	};
							PathSFX(EffectMan*	pParent, const std::string& Image, float Width = 0.1f);
	virtual					~PathSFX();
	virtual void			Render(const math::Vec2& Offset, float Scale);
	virtual void			Tick(float dt);
	void					AddElement(math::Spline2D* pPath, float Time);
private:
	float					m_Width;
	ui::UISprite			m_Sprite;
	bool					m_Additive;
	std::vector<PathInst*>	m_Paths;
};

};
#endif // _VFX_PATH_SFX_
